package tech.aistar.day04;

import java.util.Arrays;

/**
 * 本类用来演示: 二维数组
 *
 * @author: success
 * @date: 2021/3/9 1:45 下午
 */
public class TwoArrayDemo {
    public static void main(String[] args) {
        //1. 定义一个三行三列 的二维数组
        //元素类型决定了这个数组中可以存放的数据的类型
        //二维数组中的每个元素都是一维数组

        //元素类型[] 变量 = new 元素类型[length];//一维数组的语法
        int[][] arr = new int[3][3];
//        System.out.println(Arrays.toString(arr[0]));

        System.out.println(arr.length);//rows相关

        //赋值方式: 可以通过一行一行进行赋值
        arr[0] = new int[]{1,2,3};
        //arr[0] = {1,2,3};//error
        arr[1] = new int[]{4,5,6};
        arr[2] = new int[]{7,8,9};

        //b. 可以通过下标一一赋值
        arr[0][0] = 100;
        arr[0][1] = 200;

        //2. 二维数组的遍历方式
        for (int i = 0; i < arr.length; i++) {
            //System.out.println(Arrays.toString(arr[i]));
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }

        System.out.println("====");

//        for(元素类型 变量:数组对象名){
//
//        }

        for(int[] t:arr){
            for(int n:t){
                System.out.print(n+"\t");
            }
            System.out.println();
        }

        System.out.println("======");
        //列是可以省略不写的
        int temp[][] = new int[3][];
        //可以定义一个不规则的二维数组
        temp[0] = new int[]{1};
        temp[1] = new int[]{1,2};
        temp[2] = new int[]{1,3,3};

        //java.util.Arrays工具类中提供了直接输出二维数组的方法的
        System.out.println(Arrays.deepToString(temp));


    }
}
